package array;

/**
 * 数组赋值机制
 */
public class ArrayAssign {

    public static void main(String[] args) {
        //基本数据类型赋值，这个值就是具体的数据，而且互不影响
        int n1 = 2;
        int n2 = n1; //此时只是把栈内n1的值赋给n2
        System.out.println(n2);//n2 = 2
        n2 = 80; // 改变n2的值并不会影响n1
        System.out.println(n1);// 2
        System.out.println(n2);// 80

        //而数组在默认情况下是引用传递，赋的是地址
        int[] arr1 = {1,2,3};
        int[] arr2 = arr1;//arr2指向arr1
        arr2[0] = 10;//arr2数组改变值的同时arr1也一样改变，因为指向堆内同一空间
        System.out.println(arr1[0]);// 10
        System.out.println(arr2[0]);// 10
    }
}
